home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / p / pov / povlisti.ngs / roman2.pov < prev    next >
Encoding:
Text File  |  1992-08-08  |  5.8 KB  |  195 lines

  1. // Persistence Of Vision raytracer version 1.0 sample file.
  2. // NOTE: This version of roman.pov has been modified by Dan Farmer.
  3. // First stage of the Tower of Pisa
  4. // warning:  This picture can take a very long time to ray trace
  5. // due to the large number of objects.  You have been warned :->  
  6. // Time: 640x480 without anti-aliasing, approx 1:30 on 486/33
  7. //       (6 hrs 42 minutes with +a0.3)
  8. #include "shapes.inc"
  9. #include "colors.inc"
  10. #include "textures.inc"
  11. #include "stones.inc"
  12. #declare Stone = texture {
  13.    stone16
  14.    scale <6 6 6>
  15.    ambient 0.25
  16.    diffuse 0.7
  17.    specular 0.75
  18.    roughness 0.001
  19. }
  20.  
  21. camera {
  22.    location <0.0 10.0 -120.0>   // I'm kinda thinking of feet here
  23.    direction <0.0 0.1 1.0>
  24.    up <0.0 1.0 0.0>
  25.    right <1.3333 0.0 0.0>
  26.    look_at <0 28 0>
  27. }
  28.  
  29. #declare Beam = quadric { Cylinder_Y inverse
  30.     scale <0.35 20.0 0.35>       // ie: this would be 20 feet tall
  31.     translate <2.0 0.0 0.0>
  32. }
  33.  
  34. // create a sample column for the base of the structure
  35. #declare BaseColumn = object {
  36.     difference   {
  37.         intersection {
  38.              quadric { Beam                         }
  39.              quadric { Beam rotate <0.0 -25.7  0.0> }
  40.              quadric { Beam rotate <0.0 -51.4  0.0> }
  41.              quadric { Beam rotate <0.0 -77.1  0.0> }
  42.              quadric { Beam rotate <0.0 -102.8 0.0> }
  43.              quadric { Beam rotate <0.0 -128.5 0.0> }
  44.              quadric { Beam rotate <0.0 -154.2 0.0> }
  45.              quadric { Beam rotate <0.0 -179.9 0.0> }
  46.              quadric { Beam rotate <0.0 -205.6 0.0> }
  47.              quadric { Beam rotate <0.0 -231.3 0.0> }
  48.              quadric { Beam rotate <0.0 -257.0 0.0> }
  49.              quadric { Beam rotate <0.0 -282.7 0.0> }
  50.              quadric { Beam rotate <0.0 -308.4 0.0> }
  51.              quadric { Beam rotate <0.0 -334.1 0.0> }
  52.          }
  53.         quadric { Cylinder_Y inverse scale <2 1 2>  }
  54.     }
  55.  
  56.      clipped_by {
  57.          plane { <0.0 1.0 0.0> 40.0 }
  58.          plane { <0.0 -1.0 0.0> 0.0 }
  59.      }
  60.  
  61.    bounded_by {
  62.      intersection {
  63.         plane { <0.0 1.0 0.0> 40.0 }
  64.         plane { <0.0 -1.0 0.0> 0.0 }
  65.          quadric {
  66.             Cylinder_Y
  67.             scale <2.51 1.0 2.51>
  68.          }
  69.      }
  70.    }
  71.  
  72.    texture { Stone }
  73.    colour red 0.8 green 0.0 blue 0.0
  74.    scale <1.25 1 1.25>                      // after-thought
  75. }
  76.  
  77. // and a rectangular pad to serve as a footing for the column
  78. #declare BasePad = object {
  79.    box { UnitBox scale <3 1 3> }
  80.    texture { Stone }
  81.    colour red 0.6 green 0.6 blue 0.4
  82. }
  83.  
  84. // and define a basic arch to span the columns
  85. #declare BaseArch = object {
  86.    intersection {
  87.       quadric { Cylinder_X scale <1.0 10.5 10.5> }
  88.       quadric { Cylinder_X scale <1.0 8.5 8.5> inverse }
  89.       plane { <1.0 0.0 0.0> 2.0 }
  90.       plane { <-1.0 0.0 0.0> 2.0 }
  91.       plane { <0.0 -1.0 0.0> 0.0 }
  92.    }
  93.  
  94.    bounded_by {
  95.      box { UnitBox scale <2 6.25 12.5 > translate <0 6.25 0> }
  96.    }
  97.    texture { Stone }
  98.    colour red 0.8 green 0.8 blue 0.8
  99. }
  100.  
  101. // and finally define the first floor floor
  102. #declare BaseFloor = object {
  103.    intersection {
  104.       quadric { Cylinder_Y scale <50.0 50.0 50.0> }
  105.       quadric { Cylinder_Y scale <40.0 40.0 40.0> inverse }
  106.       plane { <0.0 1.0 0.0> 2.0 }
  107.       plane { <0.0 -1.0 0.0> 2.0 }
  108.    }
  109.    texture { Stone }
  110.    colour red 0.8 green 0.8 blue 0.6
  111. }
  112.  
  113. // place a ring of 14 columns with footings around the base
  114. #declare FullColumn = composite {
  115.    object { BaseArch   translate <45.0 42.0 2.0>  rotate <0.0 -10.85 0.0> }
  116.    object { BasePad    translate <45.0 41.0 0.0>  }
  117.    object { BaseColumn translate <45.0 0.0 0.0>   }
  118.    object { BasePad    translate <45.0 -1.0 0.0>  }
  119. }
  120.  
  121. #declare Level1 = composite {
  122.    object { BaseFloor translate <0.0 54.25 0.0>   }
  123.    composite { FullColumn }
  124.    composite { FullColumn rotate <0.0 -25.7   0.0> }
  125.    composite { FullColumn rotate <0.0 -51.4   0.0> }
  126.    composite { FullColumn rotate <0.0 -77.1   0.0> }
  127.    composite { FullColumn rotate <0.0 -102.8  0.0> }
  128.    composite { FullColumn rotate <0.0 -128.5  0.0> }
  129.    composite { FullColumn rotate <0.0 -154.2  0.0> }
  130.    composite { FullColumn rotate <0.0 -179.9  0.0> }
  131.    composite { FullColumn rotate <0.0 -205.6  0.0> }
  132.    composite { FullColumn rotate <0.0 -231.3  0.0> }
  133.    composite { FullColumn rotate <0.0 -257.0  0.0> }
  134.    composite { FullColumn rotate <0.0 -282.7  0.0> }
  135.    composite { FullColumn rotate <0.0 -308.4  0.0> }
  136.    composite { FullColumn rotate <0.0 -334.1  0.0> }
  137.    object { BaseFloor  }
  138.  
  139.    bounded_by {
  140.       intersection { 
  141.          quadric { Cylinder_Y scale <55.0 1.0 55.0> }
  142.          plane { <0.0  -1.0  0.0> 0.0 }
  143.          plane { <0.0  1.0   0.0> 60.0 }
  144.       }
  145.    }
  146. }
  147.  
  148. composite { Level1 }
  149.  
  150. // Add the sky to the picture
  151. object {
  152.    sphere { <0.0 0.0 0.0> 3000.0 }
  153.  
  154.    texture {
  155.       bozo
  156.       turbulence 0.75
  157.       colour_map {
  158.           [0.0 0.6  colour red 0.375 green 0.375 blue 0.75
  159.                     colour red 0.375 green 0.375 blue 0.75]
  160.           [0.6 0.8  colour red 0.375 green 0.375 blue 0.75
  161.                     colour red 1.0   green 1.0   blue 1.0]
  162.           [0.8 1.0  colour red 1.0   green 1.0   blue 1.0
  163.                     colour red 0.85   green 0.85   blue 0.85]
  164.       }
  165.       scale <1000.0  200.0  1000.0>
  166.       ambient 0.5
  167.       diffuse 0.0
  168.    }
  169.    colour red 0.5 green 0.5 blue 1.0
  170. }
  171.  
  172.  
  173. // Define the desert floor
  174. object {
  175.    plane { <0.0 1.0 0.0> -1.0 }
  176.  
  177.    texture {
  178.       0.05  /* This value dithers the colours */
  179.       colour red 1.0 green 0.66 blue 0.2
  180.       ripples 0.5
  181.       frequency 2000.0
  182.       scale <50000.0 50000.0 50000.0>
  183.       ambient 0.25
  184.       diffuse 0.7
  185.    }
  186.    colour red 1.0 green 0.66 blue 0.2
  187. }
  188.  
  189. // Add a light source
  190. object {
  191.     light_source { <60.0  50.0  -110.0>
  192.     colour White
  193.     }
  194. }
  195.